1. Field of the Invention
The invention relates generally to storage systems and more specifically relates to updating firmware residing on devices of a storage system.
2. Discussion of Related Art
In order to achieve the goal of storing data reliably and efficiently, storage systems typically include hundreds, if not thousands of interworking devices. For example, storage systems may include storage controllers, host bus adaptors, storage devices (e.g., hard disks, optical media, solid state drives, and other components for storing large volumes of data persistently), and other components. In order to ensure that the storage system functions as effectively as possible, it is generally desirable to ensure that each of these storage system devices utilizes the latest version of firmware possible (i.e., each of these components should utilize the latest version of programmed operational instructions stored in a memory and/or other programmed logic components). For example, using the latest version of firmware can reduce the chances of encountering a bug, can enable enhanced device functionality, or can even add entirely new device features.
Unfortunately, manually updating the numerous components of a storage system is a very time-consuming process. A system engineer may, for example, waste valuable time in determining the model number and/or current firmware version number of each storage system component, in searching to find updates available for each model number, and in checking to see if the discovered updates are more recent than the current version of firmware used by the component. With this in mind, it can be understood that manually “pushing” a firmware update to each device within the storage system is undesirable. At the same time, automatically pushing updates to storage system components may result in system downtime or degraded functionality at times when the storage system is needed most. For example, storage system devices may experience degraded functionality when they are being updated. If this occurs during periods of heavy use within the storage system, then the storage system may provide a noticeably reduced quality-of-service to end users.
Thus it is an ongoing challenge to update the numerous and varied components of a storage system without harming the overall effectiveness and speed of the storage system.